package leetcode_200;

/**
 *@author 周杨
 *ReverseBits_190 反转一个二进制数 输出反转后的十进制数
 *describe:设这个数为k，用一个初值为0的数r保存反转后的结果，用1对k进行求与，其结果与r进行相加，
 *再对k向右进行一位移位，对r向左进行一位移位。值到k的最后一位处理完。  AC 57%rr
 *2018年6月11日 上午9:33:58
 */
public class ReverseBits_190_ {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	
	public int reverseBits(int n) {
	        int result = 0;
	        for (int i = 0; i < 32; i++) {
	            result += n & 1;
	            n >>>= 1;
	            if (i < 31) {
	                result <<= 1;
	            }
	        }
	        return result;
	}
}
